package com.ruoyi.a2.service;

import com.ruoyi.a2.domain.A2DynamicsInfo;
import com.ruoyi.a2.domain.A2HPMConfig;
import com.ruoyi.a2.domain.A2Pdcc;
import com.ruoyi.a2.domain.A2StaticInfo;
import com.ruoyi.a2.domain.A2TargetPabc;
import com.ruoyi.a2.domain.A2TmpAndIa;
import com.ruoyi.a2.dto.A2DynamicsInfoCondition;
import com.ruoyi.a2.dto.A2HPMConfigCondition;
import com.ruoyi.a2.dto.A2HPMConfigForm;
import com.ruoyi.a2.dto.A2HPMConfigJson;
import com.ruoyi.a2.dto.A2PdccCondition;
import com.ruoyi.a2.dto.A2PdccJson;
import com.ruoyi.a2.dto.A2StaticInfoForm;
import com.ruoyi.a2.dto.A2TmpAndIaJson;
import com.ruoyi.a2.dto.TargetPabcJson;
import com.ruoyi.a2.dto.A2StaticInfoCondition;
import com.ruoyi.a2.dto.TargetActivityExtractionJson;
import com.ruoyi.a2.dto.TargetPabcCondition;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;

import java.util.List;

/**
 * AIS/ADS-B动态信息与疑似目标的关联Service接口
 *
 * @author ruoyi
 * @date 2025-02-14
 */
public interface IA2Service
{

    TableDataInfo a2StaticInfoList(A2StaticInfoCondition condition);

    TableDataInfo a2DynamicsInfoList(A2DynamicsInfoCondition condition);

    List<A2DynamicsInfo> a2DynamicsInfoHistory(A2DynamicsInfoCondition condition);

    A2Pdcc getA2Pdcc(A2PdccCondition condition);

    void updateA2Pdcc(A2PdccJson json);

    void startStopTAE(TargetActivityExtractionJson json);

    A2TargetPabc getTargetPabc(TargetPabcCondition condition);

    void updateTargetPabc(TargetPabcJson json);

    int removeA2StaticInfo(Long[] ids);

    A2StaticInfo getA2StaticInfo(Long id);

    AjaxResult saveOrUpdateA2StaticInfo(A2StaticInfoForm form);

    TableDataInfo a2HPMConfigList(A2HPMConfigCondition condition);

    A2HPMConfig getA2HPMConfig(Long id);

    int removeA2HPMConfig(Long[] ids);

    AjaxResult saveOrUpdateA2HPMConfig(A2HPMConfigForm form);

    void startStopA2HPMConfig(A2HPMConfigJson json);

    List<A2TmpAndIa> a2TmpAndIa(A2TmpAndIaJson json);
}
